package pen_exam.smallblackbox_2024_03_15;

import java.util.PriorityQueue;

//健身房 M个器械，N个人 编号0~N - 1； 第一人0s来 后面每过1s来一个人，每个人使用器械时间为0.5 + （i*i)%T
//如一个人过来无器械，则直接离开，问共有多少人能使用器械
//正常代码通过20%，猜测i可能不为人的编号，题意并不清晰
public class Class01_exec {
    public static int exec(int M,int N,int T){
        if(M >= N){
            return N;
        }
        double start = 0;
        double time = 0;
        double minTime = 0;
        int ans = 0;
        PriorityQueue<Double> heap = new PriorityQueue<>();
        for (int i = 0;i <  N;i++){
            start = i;
            if(heap.size() < 3){
                time = start + (0.5 + ((i * i) % T));
                heap.add(time);
                ans++;
            }else{
                minTime = heap.peek();
                if(start >= minTime){
                    heap.poll();
                    time = start + (0.5 + ((i * i) % T));
                    heap.add(time);
                    ans++;
                }
            }
        }
        return ans;
    }
}
